package com.demo.java.OD251_300.OD287;

import java.util.*;

/**
 * @author bug菌
 * @Source 公众号：猿圈奇妙屋
 * @des： 【解压缩算法】问题
 * @url： https://blog.csdn.net/weixin_43970743/article/details/146080593
 */
public class OdMain {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        Stack<String> stack = new Stack<>();
        String s = in.nextLine(); // 输入字符串

        // 遍历字符串的每个字符
        for (int i = 0; i < s.length(); i++) {
            char ch = s.charAt(i); // 获取当前字符
            if (ch == '{') {
                stack.push("{"); // 遇到左括号，压栈
            } else if (ch == '}') {
                // 处理右括号的情况
                if (Character.isDigit(s.charAt(i + 1))) {
                    int index = i + 1;
                    // 找到数字结束的位置
                    while (index < s.length() && Character.isDigit(s.charAt(index))) index++;
                    int count = Integer.parseInt(s.substring(i + 1, index)); // 解析重复次数
                    StringBuilder result = new StringBuilder();
                    // 拼接当前括号内的字符
                    while (!stack.peek().equals("{")) result.append(stack.pop());
                    stack.pop(); // 弹出左括号
                    // 将括号内的字符重复 `count` 次并压栈
                    for (int j = 0; j < count; j++) stack.push(result.toString());
                    i = index - 1; // 更新循环的索引
                }
            } else if (Character.isLetterOrDigit(ch)) {
                if (Character.isDigit(s.charAt(i + 1))) {
                    int index = i + 1;
                    // 找到数字结束的位置
                    while (index < s.length() && Character.isDigit(s.charAt(index))) index++;
                    int count = Integer.parseInt(s.substring(i + 1, index)); // 解析重复次数
                    // 将字母重复 `count` 次并压栈
                    for (int j = 0; j < count; j++) stack.push(ch + "");
                    i = index - 1; // 更新循环的索引
                } else {
                    stack.push(ch + ""); // 直接将字母压栈
                }
            }
        }

        // 拼接栈中的结果
        StringBuilder result = new StringBuilder();
        while (!stack.isEmpty()) result.append(stack.pop());
        // 输出最终结果
        System.out.println(result.reverse().toString());
    }
}